#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
数据库初始化脚本
使用Flask-SQLAlchemy正确初始化数据库
"""

from app import app, db, Admin
from werkzeug.security import generate_password_hash
import os

def init_database():
    """初始化数据库"""
    print("开始初始化数据库...")
    
    # 确保instance目录存在
    os.makedirs('instance', exist_ok=True)
    
    with app.app_context():
        # 创建所有表
        db.create_all()
        print("✓ 数据库表创建成功")
        
        # 检查是否已存在管理员
        existing_admin = Admin.query.filter_by(username='admin').first()
        if not existing_admin:
            # 创建默认管理员
            admin = Admin(
                username='admin',
                password_hash=generate_password_hash('admin123')
            )
            db.session.add(admin)
            db.session.commit()
            print("✓ 默认管理员账户已创建 (admin/admin123)")
        else:
            print("✓ 管理员账户已存在")
    
    print("数据库初始化完成！")

if __name__ == '__main__':
    init_database()